﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace StuertzDatenbank
{
    public partial class HerstellerErstellenGui : Form
    {
       private Benutzer benutzer;
        private DBF dbf;
        private Sprachfile sprachfile;
        private List<Country> aktuellelaenderliste;
        private List<Geschlecht> geslechterliste;
        private List<Sprache> spracheliste;
        private Hersteller aktuellerHersteller;
        
        public HerstellerErstellenGui(Benutzer benutzer)
        {
            this.benutzer = benutzer;
            dbf = new DBF();
            sprachfile = new Sprachfile();
            aktuellerHersteller = new Hersteller(-1);

            geslechterliste = dbf.alleGeschlechterAusgeben();
            spracheliste = dbf.alleSprachenAusgeben();

            InitializeComponent();
            fillcountryarray();
            rechteverwaltung();
            InitializeComponentChanged();
        }

        private void rechteverwaltung()
        {
            
            
                this.Speichern.Visible = benutzer.getRolle().getRechte().Herstellererstellen;
            
           
        }

        private void fillcountryarray()
        {
            aktuellelaenderliste = this.dbf.alleLaenderAusgeben();
            for (int i = 0; i < aktuellelaenderliste.Count; i++)
            {
                this.countrycombobox.Items.Add(aktuellelaenderliste[i].getCountry());
            }
            this.Refresh();


        }

     

        private void Speichern_Click(object sender, EventArgs e)
        {
           
           
           


            try
            {


                aktuellerHersteller.setID(int.Parse(this.textBox1.Text));
                aktuellerHersteller.setName(this.textBox2.Text);
                aktuellerHersteller.setAdressline1(this.textBox3.Text);
                aktuellerHersteller.setAdressline2(this.textBox4.Text);
                aktuellerHersteller.setCity(this.textBox5.Text);
                aktuellerHersteller.setPostcode(this.textBox6.Text);
                aktuellerHersteller.setState(this.textBox7.Text);
                aktuellerHersteller.setCountry(aktuellelaenderliste[this.countrycombobox.SelectedIndex]);
                dbf.herstellerEintragen(aktuellerHersteller);

            }
            catch (Exception e1)
            {

                MessageBox.Show(e1.ToString());
            }
            this.Visible = false;
            HerstellerGui gui = new HerstellerGui(benutzer);
            this.Dispose();
            gui.ShowDialog();        
            }

        private void Start_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            startgui gui = new startgui(benutzer);
            this.Dispose();
            gui.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            HerstellerGui gui = new HerstellerGui(benutzer);
            this.Dispose();
            gui.ShowDialog();

        }

        private void NeuerAnsprechpartnerButton_Click(object sender, EventArgs e)
        {
            this.Geschlechtbox.SelectedText = "";
            this.Namebox.Text = "";
            this.Vornamebox.Text = "";
            this.Titelbox.Text = "";
            this.Fachbereichbox.Text = "";
            this.Telefon1box.Text = "";
            this.Telefon2box.Text = "";
            this.Emailbox.Text = "";
            this.Faxbox.Text = "";
            this.Kommentarbox.Text = "";
            for (int i = 0; i < SprachecheckedListBox.Items.Count; i++)
            {
                this.SprachecheckedListBox.SetItemChecked(i, false);

            }
        }

        private void Ansprechpartnerspeichernbutton_Click(object sender, EventArgs e)
        {
            Ansprechpartner aktuelleransprechpartner = new Ansprechpartner(-1);


            aktuelleransprechpartner.setGeschlecht(geslechterliste[this.Geschlechtbox.SelectedIndex]);
            aktuelleransprechpartner.setNachname(this.Namebox.Text);
            aktuelleransprechpartner.setVorname(this.Vornamebox.Text);
            aktuelleransprechpartner.setTitel(this.Titelbox.Text);
            aktuelleransprechpartner.setFachbereich(this.Fachbereichbox.Text);
            aktuelleransprechpartner.setTelefon1(this.Telefon1box.Text);
            aktuelleransprechpartner.setTelefon2(this.Telefon2box.Text);
            aktuelleransprechpartner.setEmail(this.Emailbox.Text);
            aktuelleransprechpartner.setFax(this.Faxbox.Text);
            aktuelleransprechpartner.setKommentar(this.Kommentarbox.Text);

            List<Sprache> aktuellesprachliste = new List<Sprache>();
            for (int i = 0; i < SprachecheckedListBox.Items.Count; i++)
            {
                if (this.SprachecheckedListBox.GetItemChecked(i))
                {

                    aktuellesprachliste.Add(this.spracheliste[i]);

                }
            }
            aktuelleransprechpartner.setSprache(aktuellesprachliste);

            aktuellerHersteller.addAnsprechpartner(aktuelleransprechpartner);
            this.NeuerAnsprechpartnerButton_Click(sender, e);
            
            
        }

        private void AnsprechpartnerloeschenButton_Click(object sender, EventArgs e)
        {

        }

        private void InitializeComponentChanged()
        {
            this.Start.Text = sprachfile.Start;
            this.tabPage1.Text = sprachfile.Hersteller;
            this.label1.Text = sprachfile.Herstellernummer;
            this.label2.Text = sprachfile.Name;
            this.label3.Text = sprachfile.Addressline1;
            this.label4.Text = sprachfile.Addressline2;
            this.label5.Text = sprachfile.City;
            this.label6.Text = sprachfile.Postcode;
            this.label7.Text = sprachfile.State;
            this.label8.Text = sprachfile.Country;
            this.tabPage2.Text = sprachfile.Ansprechpartner;
            this.label9.Text = sprachfile.Geschlecht;
            this.label10.Text = sprachfile.Name;
            this.label11.Text = sprachfile.Vorname;
            this.label12.Text = sprachfile.Titel;
            this.label13.Text = sprachfile.Fachbereich;
            this.label14.Text = sprachfile.Telefon1;
            this.label15.Text = sprachfile.Telefon2;
            this.label16.Text = sprachfile.Email;
            this.label17.Text = sprachfile.Fax;
            this.label18.Text = sprachfile.Kommentar;
            this.label19.Text = sprachfile.Sprache;
            this.Ansprechpartnerlabel.Text = sprachfile.Ansprechpartner;
            this.NeuerAnsprechpartnerButton.Text = sprachfile.Neu;
            this.Ansprechpartnerspeichernbutton.Text = sprachfile.Speichern;
            this.AnsprechpartnerloeschenButton.Text = sprachfile.Loeschen;
            this.Speichern.Text = sprachfile.Speichern;
            this.Text = sprachfile.Herstellerhinzufügen;


            this.textBox1.Text = "";
            this.textBox2.Text = "";
            this.textBox3.Text = "";
            this.textBox4.Text = "";
            this.textBox5.Text = "";
            this.textBox6.Text = "";
            this.textBox7.Text = "";

            //Geschelcht
            geslechterliste = dbf.alleGeschlechterAusgeben();
            for (int i = 0; i < geslechterliste.Count; i++)
            {
                this.Geschlechtbox.Items.Add(geslechterliste[i].getGeschlecht());
            }
            //Sprache
            spracheliste = dbf.alleSprachenAusgeben();
            for (int i = 0; i < spracheliste.Count; i++)
            {
                this.SprachecheckedListBox.Items.Add(spracheliste[i].getSprache());

            }
            //Ansprechpartner
            AnsprechpartnerBox.Items.Clear();
            AnsprechpartnerBox.Items.Add(sprachfile.NeuerAnsprechpartner);

            
            this.Refresh();
        }

       

     
         

       
     
    }
}
